- •Методические указания
- •Лабораторная работа №8 Преобразование двумерных координат. Динамическое Преобразование координат.
- •Пример программы
- •Динамическое преобразование двумерных координат
- •Пример программы
- •Пример программы
- •6. Варианты задания
- •7. Контрольные вопросы
- •Библиографический список
- •Содержание
- •394026 Воронеж, Московский просп., 14
ГОУВПО «Воронежский государственный технический
университет»
Кафедра компьютерных интеллектуальных технологий
проектирования
312-2009
Методические указания
к выполнению лабораторной работы № 8
по курсу «Компьютерная графика»
для студентов специальности 230104
«Системы автоматизированного проектирования»
очной формы обучения
Воронеж 2009
Составители: канд. техн. наук А.С. Кольцов,
д-р техн. наук Е.Д. Федорков,
ст. преп. В.А. Рыжков
УДК 681.3.06
Методические указания к выполнению лабораторной работы № 8 по курсу «Компьютерная графика» для студентов специальности 230104 «Системы автоматизированного проектирования» очной формы обучения / ГОУВПО «Воронежский государственный технический университет»; сост. Е.Д. Федорков, А.С. Кольцов, В.А. Рыжков. Воронеж, 2009. 25 с.
Приведены задания для лабораторных работ по курсу «Компьютерная графика», где описано исследование математических методов и алгоритмов преобразования двумерных координат в процессе построения сложных графических изображений, а также изучение алгоритмов построения динамических изображений со сложным преобразованием координат в графическом режиме.
Методические указания подготовлены на магнитном носителе в текстовом редакторе Microsoft Word 2003 и содержатся в файле KompGraf_5och.doc.
Предназначены для студентов 3 курса.
Библиогр.: 6 назв.
Рецензент д-р техн. наук, проф. О.Н. Чопоров
Ответственный за выпуск зав. кафедрой д-р техн. наук, проф. Е.Д. Федорков
Издается по решению редакционно-издательского совета Воронежского государственного технического университета
© ГОУВПО «Воронежский
государственный технический
университет», 2009
Лабораторная работа №8 Преобразование двумерных координат. Динамическое Преобразование координат.
1. ЦЕЛЬ РАБОТЫ: исследование математических методов и алгоритмов преобразования двумерных и трехмерных координат в процессе построения сложных графических изображений, а так же изучение алгоритмов построения динамических изображений со сложным преобразованием координат в графическом режиме.
2. ЗАДАЧИ РАБОТЫ.
Освоить приемы работы с системой двумерных координат.
3. СОБЕРЖАНИЕ РАБОТЫ.
Получить задание у преподавателя.
Написать и отладить на компьютере программу, реализующую требуемое преобразование изображения без масштабирования.
Если изображение искажено, ввести масштабирующие коэффициенты.
Результат работы программы продемонстрировать преподавателю.
Напечатать листинг программы.
4. ТРЕБОВАНИЯ К ОТЧЕТУ
Отчет выполняется на листах А4 формата и должен содержать:
название работы, постановку задачи, порядок выполнения работы и полученное изображение;
ответы на контрольные вопросы.
5. ТЕОРЕТИЧЕСКИЙ МАТЕРИАЛ
П
x22 = f(x1, y1),
y22 = f(x1, y1).
Наиболее распространены так называемые аффинные преобразования, которые предполагают сохранение после расчета вторичных координат параллельность и формы у прямых. Общий вид уравнений таких преобразований имеет вид
x22 = axxx1 + axyy1 + ax,
y22 = ayxx1 + ayyy1 + ay.
При этом сдвиг без поворота характеризуется матрицей коэффициентов
1 |
0 |
ax |
0 |
1 |
ay |
где ax, ay - задают сдвиг соответственно по осям x и y, т.е.
x2 = x1 + ax,
y2 = y1 + ay.
Операция масштабирования (преобразования подобия) реализуется матрицей
М |
0 |
0 |
0 |
М |
0 |
Зеркальное отображение относительно диагонали первого квадранта (смена координатных осей) предполагает матрицу вида
0 |
1 |
0 |
1 |
0 |
0 |
Повороту на угол α против часовой стрелки соответствует матрица
сosα |
-sinα |
0 |
sinαα |
cosα |
0 |
Комбинации двух или более операций преобразования соответствует комбинация коэффициентов соответствующих матриц. Так, например, сдвиг с одновременным поворотом реализуется матрицей
сosα |
-sinα |
ах |
sinαα |
cosα |
аy |
Описание среды программирования
При преобразовании координат в среде языка программирования Turbo Pascal необходимо учесть, что графический экран ПК представляет собой четвертый квадрант прямоугольной системы координат, т.е. начало координат находится в левом верхнем углу. Полноценная система координат создается самим пользователем путем переноса ее начала вниз и/или вправо на величины x и/или y, т.е. реализуется локальная система, сдвинутая на данные величины относительно глобальной. В дальнейшем, глобальные координаты всех точек (xг, yг) пересчитываются через локальные (xл, yл) по следующим уравнениям:
xг = xл + x,
yг = y - yл.
Вторая проблема, возникающая обычно при сложных преобразованиях, - разная разрешимость (количество пикселей на единицу длины) графического экрана по горизонтали и вертикали. Попытка изобразить квадрат путем задания одинакового количества пикселей по его сторонам приводит к отображению прямоугольника, вытянутого по высоте. Данный эффект отсутствует только при разрешении 640х480 и особенно усиливается при установке подрежимов с низким количеством пикселей по вертикали, например, 640х200 (см. лабораторную работу №3). Для устранения данного эффекта средствами языка Паскаль производится предварительное масштабирование изображения с помощью процедуры GetAspectRatio(mx, my), где mx, my - переменные, в которые записывается число точек по горизонтали и вертикали. В дальнейшем, при построении требуемого изображения все координаты по оси x должны умножаться на отношение my/mx или, наоборот, все координаты по оси y умножаются на отношение mx/my. При этом возникает еще одна проблема, связанная с особенностями языка Паскаль: получаемые при умножении масштабированные координаты могут принимать вещественные значения, что запрещено для параметров графических примитивов данного языка. Поэтому все результаты таких умножений должны округляться функцией Round.